from datetime import datetime, timedelta  # 导入日期时间模块

class WatermarkGenerator:
    def __init__(self, max_lag=5):
        """初始化水印生成器"""
        self.max_lag = timedelta(seconds=max_lag)  # 设置最大延迟时间（默认 5 秒）
        self.current_max = datetime.min  # 初始化当前最大事件时间为最小时间（datetime.min 表示最小的可能时间）

    def update(self, event_time: datetime):
        """更新水印生成器的当前最大事件时间"""
        if event_time > self.current_max:  # 如果传入的事件时间大于当前最大事件时间
            self.current_max = event_time  # 更新当前最大事件时间

    @property
    def value(self):
        """计算并返回当前水印值"""
        return self.current_max - self.max_lag  # 水印值 = 当前最大事件时间 - 最大延迟时间